Japanese Patent Application Laid-open Publication No. 2014-228181 discloses a method for loading a library into an information processing device capable of executing an application program, in such a manner that the library including a program under which the information processing device performs a function is loaded at the time of execution of the function by the information processing device. According to Java (registered trademark), for example, a module called a class loader is generally used to load a program from a library in response to a class loading request issued from an application.
It is further known that there exist various types of library versions having an identical name but including different contents as a result of functional enhancement or difference in sources, or for other reasons. For example, there is such a case when a library version used by an application server which provides an execution environment for an application is different from a library version used by the application and having a name identical to the name of the library used by the application server. In this case, there is a possibility that a class loader loads a library including a program with an identical class name but of a different version in response to a load request for a certain class name. When the class loader loads the library for the application server (i.e., library of the different version) in response to a load request from the application, the application does not operate in a normal condition. Accordingly, the class loader needs to select an appropriate library from a plurality of libraries having an identical name in association with the application, and load the selected library.
A related technology for solving this problem, is disclosed in Japanese Patent Application Laid-open Publication No. 2010-113474 (hereinafter referred to as Document 1). In the Document 1, an information processing device uses a plurality of application programs which are capable of using different libraries, each of which includes a class with an identical name within one JVM (Java Virtual Machine). According to the information processing device described in Document 1, a user or the like sets attributes concerning libraries and programs beforehand as table information. Then, a setting means discriminates distributors of the programs on the basis of the table information, and sets paths for library files in association with the discriminated distributors. The information processing device is capable of switching the paths of the library files called during execution of the programs in this manner.
Japanese Patent Application Laid-open Publication No. 2007-206965 (hereinafter referred to as Document 2) discloses an information processing device which switches settings of paths of library files in association with distributors of application programs to be executed. According to the information processing device described in Document 2, a user describes information about versions of libraries in a manifest file or the like beforehand. At the time of loading of a requested class, a class loader selects either a class library provided by an application, or a system library with an identical name based on version information.
Japanese Patent Application Laid-open Publication No. 2013-196453 (hereinafter referred to as Document 3) discloses an information processing device which executes programs described in object-oriented programming languages. The information processing device is capable of loading a class of a desired version. According to the information processing device described in Document 3, an external definition storage unit stores fully qualified class names (FQCN) of classes corresponding load targets and load sources for each class loader. When a class for realizing a class loader is generated, a delegation model intervention means inserts a byte-code for intervention of a delegation model used for loading the class into the generated class based on the load source defined in the external definition storage unit. The information processing device is capable of switching load sources of class libraries in this manner in association with programs to be executed.
According to the information processing devices disclosed in Documents 1 through 3, however, a library including identical contents is loaded for each application at the time of execution of a plurality of applications. This situation produces a problem of increase in the quantity of memory usage by these information processing devices. For example, in case of execution of a plurality of identical applications by the respective information processing devices, a class loader therein loads an identical library already loaded also for the application to be subsequently executed.